openapi: 3.0.1
info:
  title: Common - Outbound from ePlanning API
  description: Common - Outbound from ePlanning API
  termsOfService: http://www.planningportal.nsw.gov.au
  version: v2
servers:
  - url: /
paths:
  /UpdateAdditionalInfo/{CaseID}:
    put:
      summary: UpdateAdditionalInfo
      description: >-
        This operation transfers additional information uploaded by the
        applicant from ePlanning to the relevant organisation's IT system. This
        additional information could either be provided voluntarily by the
        applicant or as the result of a request from the relevant organisation.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            Used by the API gateway to route the request to the relevant
            organisation.
          required: true
          schema:
            type: string
        - name: IdempotencyId
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: Information request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdditionalInfo'
        required: true
      responses:
        '200':
          description: Additional Information Provided
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /Reassign/{CaseID}:
    put:
      summary: Reassign
      description: >-
        This operation updates the relevant organisation on assigning or
        reassigning of the case.
      operationId: put-reassign-caseid
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number.
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            Used by the API gateway to route the request to the relevant
            organisation.
          required: true
          schema:
            type: string
        - name: IdempotencyId
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: Information request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/reassign'
        required: true
      responses:
        '200':
          description: Case reassigned
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
      x-codegen-request-body-name: body
  /Documents/{DocID}:
    get:
      summary: Documents
      description: Download a document attached to an application
      operationId: GetDocumentsCommonOutboundV2
      parameters:
        - name: OrganisationID
          in: header
          description: >-
            Used by the API gateway to route the request to the relevant
            organisation.
          required: true
          schema:
            type: string
        - name: DocID
          in: path
          description: The unique ID of the document to download
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Returns the file as a binary download
          content:
            application/*:
              schema:
                type: string
                format: binary
        '400':
          description: Invalid request supplied
          content:
            application/*:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Document not found
          content:
            application/*:
              schema:
                $ref: '#/components/schemas/Error'
  /CreateSubmission/{CaseID}:
    post:
      summary: CreateSubmission
      description: >-
        This operation transfers the submission data to a relevant
        organisation's IT system to create the submission.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified Exhibition case number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            Used by the API gateway to route the request to the relevant
            organisation.
          required: true
          schema:
            type: string
        - name: IdempotencyId
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSubmission'
        required: true
      responses:
        '200':
          description: Case updated
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /ExhitbitionStatusUpdate/{CaseID}:
    put:
      summary: ExhitbitionStatusUpdate
      description: >-
        This operation transfers the status update, as part of the exhibition
        process, to a relevant organisation's IT system.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified Exhibition case number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            Used by the API gateway to route the request to the relevant
            organisation.
          required: true
          schema:
            type: string
        - name: IdempotencyId
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExhitbitionStatusUpdate'
        required: true
      responses:
        '200':
          description: Case updated
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      x-codegen-request-body-name: body
  /Withdraw/{CaseID}:
    put:
      summary: Withdraw
      description: >-
        This operation transfers the applicant's decision to withdraw the
        application to the relevant organisation's IT system.
      operationId: put-withdraw-caseid
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number.
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            Used by the API gateway to route the request to the relevant
            organisation.
          required: true
          schema:
            type: string
        - name: IdempotencyId
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: Information request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Withdraw'
        required: true
      responses:
        '200':
          description: Case withdrawn
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
      x-codegen-request-body-name: body
  /RequestAddInfo/{CaseID}:
    put:
      summary: RequestAddInfo
      description: >-
        This operation requests the relevant organisation to provide additional
        information.
      operationId: post-RequestAddInfo-caseid-out
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number.
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            Used by the API gateway to route the request to the relevant
            organisation.
          required: true
          schema:
            type: string
        - name: IdempotencyId
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: Information request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReqAddInfo'
        required: true
      responses:
        '200':
          description: Case withdrawn
          content: {}
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found or locked by another user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
      x-codegen-request-body-name: body
  /NotificationOfNODStatus/{CaseID}:
    put:
      summary: NotificationOfNODStatus
      description: >-
        This operation provides the NOD document's generation status and review
        letter generation status for review DA cases along with the document
        details to the consent authority. This operation also provides all the
        conditions used to generate the NOD for that case. For any Bespoke
        conditions which are not present in the DPE Council library, this API
        will assign a case specific Condition ID. This Condition ID should be
        stored for that case in the council system. This Condition ID should be
        passed in ConsentConditions API during Mod and Review of a DA if the
        same condition needs to be retained.
      operationId: NotificationOfNODStatus
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified application number
          required: true
          schema:
            type: string
        - name: OrganisationID
          in: header
          description: >-
            Used by the API gateway to route the request to the relevant
            organisation.
          required: true
          schema:
            type: string
        - name: IdempotencyId
          in: header
          description: >-
            Unique Id for this request. Allows the API to respond in an
            idempotent way if it has already been called with these parameters
            and prevents duplicate processing. Typically a UUID such as
            "63a9ba30-7a4b-4fac-b343-d1f05cf089f1"
          required: true
          schema:
            type: string
      requestBody:
        description: NotificationOfNODStatus request object
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NotificationRequest'
        required: true
      responses:
        '200':
          description: NOD details consumed sucessfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      deprecated: false
      x-codegen-request-body-name: body
  /CreateContribution/{CaseID}:
    post:
      summary: CreateContribution
      operationId: CreateContribution
      description: >-
        This operation transfers the Contributions case creation details from
        ePlanning system to the consent authority's system.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified Contributions case number, format CON-xxxx.
          required: true
          schema:
            type: string
      requestBody:
        description: The request payload for the create contribution.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateContribution'
            example:
              caseStatus: In-progress
              parentCaseID: PAN-XXXXX
              previousContributionInformation:
                - Previous payment made for state contributions
                - State planning agreement applies to the development
              contributionPlans:
                - planId: STIC-100000000123
                  planName: Greater Sydney State Infrastructure Contributions11
                  planStatus: In effect
              proposedDevelopment:
                - developmentCategory: Agriculture
                  developmentTypes:
                    - developmentType: Aquaculture
              stages:
                - proposedDevelopmentUses:
                    - planId: STIC-100000000123
                      developmentType: Dwelling houses
                      unitOfCharge: total no. of dwelling
                      totalUnits: 3
                  isExistingDevelopment: 'yes'
                  existingDevelopment:
                    - developmentCategory: Agriculture
                      developmentTypes:
                        - developmentType: Aquaculture
                  existingDevelopmentUses:
                    - planId: STIC-100000000123
                      developmentType: Dwelling houses
                      unitOfCharge: total no. of dwelling
                      totalUnits: 44
              documents:
                documentType: test.docx
                uploadedDateTime: '2019-08-24T14:15:22.0000000+00:00'
                documentURL: >-
                  https://api-tst.apps1.nsw.gov.au/planning/external/v1/Documents/Doc2
                documentSize: 0
                updatedBy: System Generated
      responses:
        '200':
          description: Contribution Case created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /UpdateContribution/{CaseID}:
    put:
      summary: UpdateContribution
      operationId: UpdateContribution
      description: >-
        This operation transfers the Contribution case details from ePlanning
        system to external system.
      parameters:
        - name: CaseID
          in: path
          description: A fully qualified Contributions case number, format CON-xxxx.
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateContribution'
            example:
              caseStatus: Resolved-
              additionalInformation:
                - This site is in a rural zone
                - This is in SIC zone
              contributionPlans:
                - planId: STIC-100000000123
                  planName: Greater Sydney State Infrastructure Contributions11
                  planStatus: In effect
              previousContributionInformation:
                - Previous payment made for state contributions
                - State planning agreement applies to the development
              proposedDevelopment:
                - developmentCategory: Agriculture
                  developmentTypes:
                    - developmentType: Aquaculture
              stages:
                - proposedDevelopmentUses:
                    - planId: STIC-100000000123
                      developmentType: Dwelling houses
                      unitOfChargeName: total no. of dwelling
                      indexedRate: 0
                      calculatedAmount: 14760
                      currentIndexationPeriod: '2022-06-01'
                      currentIndexationValue: 102
                      baseIndexationValue: 90
                      totalUnits: 1
                    - planId: STIC-100000000123
                      developmentType: Group homes (transitional) or transitional group homes
                      unitOfChargeName: total no. of dwelling
                      indexedRate: 0
                      calculatedAmount: 49200
                      currentIndexationPeriod: '2022-06-01'
                      currentIndexationValue: 102
                      baseIndexationValue: 90
                      totalUnits: 4
                  isExistingDevelopment: 'yes'
                  existingDevelopment:
                    - developmentCategory: Agriculture
                      developmentTypes:
                        - developmentType: Aquaculture
                  existingDevelopmentUses:
                    - planId: STIC-100000000123
                      developmentType: Dwelling houses
                      unitOfChargeName: total no. of dwelling
                      indexedRate: 0
                      calculatedAmount: 14760
                      currentIndexationPeriod: '2022-06-01'
                      currentIndexationValue: 102
                      baseIndexationValue: 90
                      totalUnits: 4
                    - planId: STIC-100000000123
                      developmentType: Group homes (transitional) or transitional group homes
                      unitOfChargeName: total no. of dwelling
                      indexedRate: 0
                      calculatedAmount: 49200
                      currentIndexationPeriod: '2022-06-01'
                      currentIndexationValue: 102
                      baseIndexationValue: 90
                      totalUnits: 4
                  calculationSummary:
                    - planName: >-
                        Greater Sydney State Infrastructure Contributions
                        Location Based
                      planId: LBSC-100000000123
                      timingOfPayment: Subdivision certificate
                      assessedAmount: 23
                      contributionsAmount: 23
                      assessedAmountReason: Other
                      assessedAmountReasonDescription: >-
                        Description of reason when we select 'other' for
                        assessedAmountReason
                      systemCalculatedAmount: 108240
                    - planName: >-
                        Greater Sydney State Infrastructure Contributions
                        Location Based6232
                      planId: LBSC-10000516232
                      timingOfPayment: Subdivision certificate
                      assessedAmount: 23
                      contributionsAmount: 23
                      assessedAmountReason: Other
                      assessedAmountReasonDescription: >-
                        Description of reason when we select 'other' for
                        assessedAmountReason
                      systemCalculatedAmount: 108240
              documents:
                - documentName: test.docx
                  documentType: Determination
                  uploadedDateTime: '2019-08-24T14:15:22.0000000+00:00'
                  documentSize: ''
                  uploadedBy: ''
                  documentURL: >-
                    https://api-tst.apps1.nsw.gov.au/planning/external/v1/Documents/Doc2
              updatedBy:
                firstName: John
                familyName: Smith
                email: john.smith@gmail.com
                contactNumber: '23802123222'
      responses:
        '200':
          description: Contribution Case created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '400':
          description: Invalid request supplied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Case not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    reassign:
      title: reassign
      required:
        - assignee
      type: object
      properties:
        assignee:
          $ref: '#/components/schemas/UpdatedBy'
        updatedBy:
          $ref: '#/components/schemas/UpdatedBy'
    UpdatedBy:
      title: UpdatedBy
      type: object
      properties:
        person:
          $ref: '#/components/schemas/PersonBody'
    AdditionalInfo:
      required:
        - caseStatus
        - responseDate
      type: object
      properties:
        caseStatus:
          maxLength: 100
          type: string
          description: >-
            This field is to track the case status of the additional information
            request
          example: Complete
          minLength: 1
        childCaseID:
          type: string
          description: This child case ID is to track the additional information request.
        responseDate:
          type: string
          description: >-
            This is to track the date on which additional information is
            provided.
          format: date
          minLength: 1
        responseDetails:
          type: string
          description: Additional information description provided by the applicant
        documents:
          type: array
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedBy:
          $ref: '#/components/schemas/UpdatedBy'
    ReqAddInfo:
      required:
        - requestDetails
        - updatedBy
      type: object
      properties:
        childCaseID:
          type: string
          description: This child case ID is to track the additional information request.
          example: AI-XXXX
        caseStatus:
          type: string
          description: >-
            This field is to track the case status of the additional information
            request.
        requestDate:
          type: string
          description: This is to track the date and time of the request
          format: date
        requestDetails:
          type: string
          description: Short description of the request
          minLength: 1
        documents:
          type: array
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedBy:
          $ref: '#/components/schemas/UpdatedBy'
    DownloadableDocument:
      required:
        - documentName
        - documentType
        - documentURL
        - uploadedDateTime
      type: object
      properties:
        documentName:
          maxLength: 150
          type: string
          minLength: 1
        documentType:
          maxLength: 100
          type: string
          minLength: 1
        uploadedDateTime:
          type: string
          format: date-time
          minLength: 1
        documentURL:
          maxLength: 500
          type: string
          description: URL of the document to be downloaded
          format: uri
          minLength: 1
        documentSize:
          description: This indicates the file size of the document in bytes
          type: number
        updatedBy:
          type: string
          example: Council
    Withdraw:
      title: Withdraw
      required:
        - caseStatus
        - updatedBy
        - withdrawalDate
      type: object
      properties:
        caseStatus:
          maxLength: 80
          type: string
          description: This is to track the application status.
          example: Submitted
          minLength: 1
        withdrawalDate:
          type: string
          description: This is to track the date on which the case is withdrawn.
          format: date
          minLength: 1
        withdrawalReason:
          type: string
          description: This is to track the reason for which the case is withdrawn.
        documents:
          type: array
          description: Applicable for state DA.
          items:
            $ref: '#/components/schemas/DownloadableDocument'
        updatedBy:
          $ref: '#/components/schemas/UpdatedBy'
    PersonBody:
      required:
        - contactNumber
        - email
        - familyName
        - firstName
      type: object
      properties:
        firstName:
          maxLength: 20
          type: string
          example: John
          minLength: 1
        familyName:
          maxLength: 20
          type: string
          example: Smith
          minLength: 1
        email:
          maxLength: 250
          type: string
          description: User must be registered in the planning portal
          example: john.smith@gmail.com
          minLength: 1
        contactNumber:
          maxLength: 10
          minLength: 8
          pattern: ^[0-9]+$
          type: string
    Error:
      title: Error
      required:
        - errorCode
        - statusCode
      type: object
      properties:
        statusCode:
          type: integer
          format: int32
          example: 404
        message:
          type: string
          example: Internal Server error 19876
        activityId:
          type: string
          example: 00000011-0ab-xy00-0000-500000000000
        errorCode:
          type: string
          example: DPE_TMS01
          minLength: 1
        errorDetails:
          type: string
          example: Inner Exceptions, Stack Trace, etc
    CreateSubmission:
      required:
        - declarations
        - submission
        - submissionType
      type: object
      properties:
        submissionType:
          type: string
          description: >-
            This is to track the application submission type. 1. I am making a
            personal submission 2. I am submitting on behalf of my organisation
            3. I am submitting on behalf of a Government agency/authority
          example: Refer to description for values
          minLength: 1
        parentCaseID:
          type: string
          description: >-
            This indicates the PAN case number under which the exhibition and
            its submission cases are created.
        exhibitionCaseID:
          type: string
          description: This indicates the case number that references the exhibition case.
        organisationName:
          maxLength: 20
          type: string
          description: >-
            This is to track the government agency/authority for whom it was
            submitted. Applicable when submissionType is 'I am submitting on
            behalf of a Government agency/authority'
        positionInOrganisation:
          maxLength: 20
          type: string
          description: >-
            This is to track the applicant's position in the organisation.
            Applicable when submissionType is 'I am submitting on behalf of a
            Government agency/authority'
        title:
          type: string
          enum:
            - Mr
            - Mrs
            - Ms
            - Miss
        firstName:
          maxLength: 20
          type: string
          description: This is to track the first name
        familyName:
          maxLength: 20
          type: string
          description: This is to track the family Name.
        nameWithheld:
          type: boolean
          description: >-
            This is to track if the person who submits does not want their name
            published. This is not applicable when submissionType is 'I am
            submitting on behalf of a Government agency/authority'.
        email:
          type: string
          description: This is to track the email ID.
        address1:
          type: string
          description: This is to track the address
        address2:
          type: string
          description: This is to track the additional address
        suburbTownPostcode:
          type: string
          description: This is to track the suburb town postcode.
        postCode:
          type: string
          description: This is to track the post code.
        state:
          type: string
          description: >-
            This is to track the state in the address. 1. Australian Capital
            Territory 2. New South Wales 3. Northern Territory 4. Queensland 5.
            South Australia 6. Tasmania 7. Victoria 8. Western Australia
          example: Refer to description for values
        reportablePoliticalDonation:
          type: boolean
          description: >-
            This is to track if the person who submits has any political
            donations to report.
        submissionConsent:
          type: string
          description: >-
            This is to track the submission consent. 1. I support it 2. I object
            to it 3. I am just providing comments
          example: Refer to description for values
        submission:
          maxLength: 10000
          type: string
          minLength: 1
        declarations:
          type: array
          description: This is mandatory field user need to accept terms and conditions.
          items:
            type: string
          example:
            - I agree to the Privacy statement
            - I have read and understood the above
            - >-
              I understand that by clicking the "Submit" button, I am providing
              the information contained in this form to the Department of
              Planning and Environment and confirm that that information is not
              false or misleading
        documents:
          type: array
          items:
            $ref: '#/components/schemas/DownloadableDocument'
    ExhitbitionStatusUpdate:
      required:
        - caseStatus
      type: object
      properties:
        caseStatus:
          maxLength: 100
          type: string
          description: Status of the request for additional information
          example: Complete
          minLength: 1
    NewsPaper:
      required:
        - dateOfCirculation
        - hasSlotBooked
        - nameOfNewsPaper
      type: object
      properties:
        nameOfNewsPaper:
          maxLength: 100
          type: string
          description: >-
            This is Mandatory Field when user selects to add News Paper. This
            can be used during creation or updating the exhibition.
          minLength: 1
        hasSlotBooked:
          type: boolean
          description: >-
            This is to track if any slots are booked and this field is Mandatory
            Field when user selects to add News Paper. This can be used during
            creation or updating the exhibition.
        dateOfCirculation:
          type: string
          description: >-
            This is to track date of circulation and this field is Mandatory
            Field when user selects to add News Paper. This can be used during
            creation or updating the exhibition.
          format: date
          minLength: 1
    Success:
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Exhibition case has been created successfully
        CaseId:
          type: string
          example: EXH-1234
    SuccessResponse:
      required:
        - statusCode
        - message
      type: object
      properties:
        statusCode:
          type: integer
          example: 200
        message:
          type: string
          example: Request is successfully executed
    NotificationRequest:
      required:
        - NODGenenerationStatus
      type: object
      properties:
        NODGenenerationStatus:
          type: string
          description: This indicates the status of NOD generation
          example: Success
        documents:
          type: array
          description: This gets populated when NOD is successfully generated
          items:
            $ref: '#/components/schemas/DocumentDetails'
        failureReason:
          type: string
          description: >-
            This indicates the reason as to why the NOD document generation is
            failed.This is relevant for NOD failure scenarios only.
          example: Condition's validation faliure text
        conditions:
          type: array
          description: This indicates the conditons related to a specific case
          items:
            $ref: '#/components/schemas/ConditionsDetails'
    DocumentDetails:
      required:
        - documentURL
        - documentType
        - documentName
      type: object
      properties:
        documentName:
          type: string
          description: This indicates the name of the document
          format: string
          example: NoticeOfDetermination.pdf
        documentType:
          type: string
          description: This indicates the type of document
          example: Notice of determination
        uploadedDateTime:
          maxLength: 25
          type: string
          description: >-
            This indicates the timestamp when Condition is uploaded in the
            system
          format: date-time
        documentURL:
          type: string
          description: This indicates the Document URL
          example: Document URL
        updatedBy:
          type: string
          description: This indicates the User details who has updated the details
          example: abc@gmail.com
    ConditionsDetails:
      required:
        - conditionTitle
        - conditionText
      type: object
      properties:
        conditionID:
          maxLength: 256
          type: string
          description: >-
            This indicates the Condition ID generated by DPE. This field should
            be empty if Conditon is applied only for a specific application and
            Condition is not available in Council library in DPE. Condition ID
            is mandatory if the Condition type is selected as Prescribed or
            Model
          example: COND-123
        conditionType:
          maxLength: 256
          type: string
          description: >-
            This indicates the type of Conditions in library. If the condition
            type is sent as blank it will be treated as Bespoke condition if
            that condition ID is not available in the library. conditionType can
            have following values. 1.Bespoke:indicates conditions in Council
            library at DPE 2.Model:indicates model conditions in DPE library 3.
            Prescribed:indicates prescribed conditions in DPE library (* Values
            are case sensitive)
          example: Bespoke
        conditionTitle:
          maxLength: 256
          type: string
          description: This indicates the title of the Condition.
          example: Approved Plans
        conditionText:
          type: string
          description: >-
            This indicates the condition text in HTML format. Council can
            receive images in condition text in the img tag. img tag contains
            the documentID of the image file. Council can use GetDocument API
            for retrieving imag e document by passing base64 encoded document
            key.
          example: >-
            <p>Sample text <img height="255"
            src="https%3A%2F%2Fapi-tst.apps1.nsw.gov.au%2Fplanning%2FDocMgmt%2Fv1%2FDocuments%2FDATA-CONTENT-IMAGE
            CONIMG21686646077367!PNG!/RTEIMAGES/" width="500"></p>
        conditionReason:
          maxLength: 256
          type: string
          description: >-
            This indicates the reason why a Condition is being added in Council
            library.
          example: Plans condition.
        modificationReason:
          type: string
          description: >-
            This indicates the reason for adding, modifying or deleting
            condition(s) during a MOD DA or Review of determination application.
            This is mandatory when any condition(s) in previously approved DA is
            altered.
          example: Condition modified to change the hours of operation
        typeOfWork:
          maxLength: 256
          type: string
          description: >-
            This indicates the type of work mentioned in the condition. This
            field has following options - 1.Building Work, 2.Demolition Work,
            3.Subdivision Work,4.Remediation Work, 5.Strata Subdivision,
            6.Change of use, 7.Land Subdivision, 8.Other
          example: Demolition work
        developmentStage:
          maxLength: 256
          type: string
          description: >-
            This indicates the stage of development that are relevant to the
            condition. This field has following options - 1. During building
            work, 2. During demolition work, 3. During subdivision work, 4.
            Before building work commences, 5. Before remediation work
            commences, 6. Before subdivision work commences, 7. Before issue of
            an occupation certificate, 8. Ongoing use for subdivision work, 9.
            Occupation and ongoing use, 10. Before issue of a construction
            certificate, 11. Before issue of a subdivision certificate, 12.
            Before issue of a strata certificate, 13. Before issue of a
            subdivision works certificate, 14. On completion of demolition work,
            15.On completion of remediation work, 16. Ongoing use for change of
            use, 17. Before demolition work commences, 18. During remediation
            work, 19. General condition
          example: General condition.
        councilConditionID:
          maxLength: 256
          type: string
          description: >-
            This indicates the Council reference ID that's assigned by the
            Council for a specific Condition ID.
          example: SAMPLE-123
    CreateContribution:
      type: object
      required:
        - caseStatus
        - parentCaseID
        - contributionPlans
        - person
      properties:
        caseStatus:
          type: string
          maxLength: 100
          description: This indicates the status of the Contributions case.
        parentCaseID:
          type: string
          description: >-
            This indicates the parent case ID of the Contributions case.
            Possible formats are PAN-xxxxx or CDC-xxxxx.
        previousContributionInformation:
          type: array
          description: >-
            This is to track the previous arrangements which may impact
            contributions for new development.
          items:
            type: string
          example:
            - 1.Previous payment made for state contributions
            - 2.State planning agreement applies to the development.
        contributionPlans:
          type: array
          description: >-
            This is to track the plan details used for Contributions case
            creation. Please refer to the reference data API for the latest
            values.
          items:
            required:
              - planId
              - planName
              - planStatus
            type: object
            properties:
              planId:
                maxLength: 32
                type: string
                description: >-
                  This is to track the unique plan identifier that was
                  applicable for Contributions case creation.
              planName:
                maxLength: 250
                type: string
                description: >-
                  This is to track the name of the contributions plan that was
                  applicable for Contributions case creation.
              planStatus:
                maxLength: 32
                type: string
                description: >-
                  This is to track the status of the contributions plan that was
                  applicable for Contributions case creation.
        proposedDevelopment:
          type: array
          description: >-
            This is to track the proposed development details that were
            submitted in the application. Please refer to the reference data API
            for the latest values.
          items:
            type: object
            properties:
              developmentCategory:
                maxLength: 256
                type: string
                description: >-
                  This is to track the category of a development. Please refer
                  to the reference data API for the latest values. Example
                  values are - 1.Agriculture 2.Commercial Development 3.Existing
                  residential lots 4.Industrial development 5.Infrastructure
                  6.Manufactured home estate 7.Residential Accommodation
                  8.Subdivision 9.Supporting development.
              developmentTypes:
                type: array
                description: >-
                  This is to track the list of all developments applied for
                  under a given category.
                items:
                  required:
                    - developmentType
                  type: object
                  properties:
                    developmentType:
                      maxLength: 256
                      type: string
                      description: >-
                        This is to track the development type provided by the
                        applicant based on corresponding category name. Please
                        refer to the reference data API for the latest values.
        stages:
          type: array
          description: >-
            This is to track the number of stages proposed by the applicant
            during application submission. The object repeats as many times as
            the number of stages. Note- multiple stages are not applicable under
            a Complying Develoment Certificate parent application.
          items:
            type: object
            properties:
              proposedDevelopmentUses:
                type: array
                description: >-
                  This is to track the chargeable proposed developments
                  identified against the plans for the site address. Please
                  refer to reference data API with attribute =
                  'applicableDevelopment' for the latest values for planId,
                  developmentType, unitOfCharge.
                items:
                  required:
                    - planId
                  type: object
                  properties:
                    planId:
                      maxLength: 32
                      type: string
                      description: >-
                        This is to track the plan ID that charges for the
                        developments proposed in the contribution application.
                    developmentType:
                      maxLength: 256
                      type: string
                      description: >-
                        This is to track the chargeable development found in the
                        plan for corresponding planId.
                    unitOfCharge:
                      maxLength: 64
                      type: string
                      description: >-
                        This is to track the unit of charge for corresponding
                        chargeable developmentType.
                    totalUnits:
                      maxLength: 18
                      type: number
                      description: >-
                        This is to track the total number of units for
                        corresponding chargeable developmentType being submitted
                        in the application.
              isExistingDevelopment:
                type: boolean
                description: >-
                  This is to track if the applicant has added any existing
                  development for the site address.
              existingDevelopment:
                type: array
                description: >-
                  This is to track any existing developments for which applicant
                  can get a credit during contribution calculation. Please refer
                  to reference data API with attribute = 'applicableDevelopment'
                  for the latest values for planId, developmentType,
                  unitOfCharge.
                items:
                  type: object
                  properties:
                    developmentCategory:
                      maxLength: 256
                      type: string
                      description: >-
                        This is to track the category of a development. Please
                        refer to the reference data API for the latest values.
                        Example values are - 1.Agriculture 2.Commercial
                        Development 3.Existing residential lots 4.Industrial
                        development 5.Infrastructure 6.Manufactured home estate
                        7.Residential Accommodation 8.Subdivision 9.Supporting
                        development.
                    developmentTypes:
                      type: array
                      items:
                        required:
                          - developmentType
                        type: object
                        properties:
                          developmentType:
                            maxLength: 256
                            type: string
                            description: >-
                              This is to track the development type provided by
                              the applicant based on corresponding category
                              name. Please refer to the reference data API for
                              the latest values.
              existingDevelopmentUses:
                type: array
                description: >-
                  This is to track the existing developments for which applicant
                  can get a credit during contribution calculation.Please refer
                  to reference data API with the attribute =
                  'applicableDevelopment' for the latest values.
                items:
                  required:
                    - planId
                    - developmentType
                    - unitOfCharge
                    - totalUnits
                  type: object
                  properties:
                    planId:
                      maxLength: 32
                      type: string
                      description: >-
                        This is to track the plan ID that charges for the
                        developments marked as existing developments in the
                        contribution application.
                    developmentType:
                      maxLength: 256
                      type: string
                      description: >-
                        This is to track the chargeable developments marked as
                        existing development and applicable in corresponding
                        planId.
                    unitOfCharge:
                      maxLength: 64
                      type: string
                      description: >-
                        This is to track the unit of charge for corresponding
                        chargeable development.
                    totalUnits:
                      maxLength: 18
                      type: number
                      description: >-
                        This is to track the total number of units for
                        corresponding development.
        documents:
          type: array
          description: >-
            This is to track the list of documents provided during Contributions
            case creation.
          items:
            required:
              - documentName
              - documentType
              - uploadedDateTime
              - documentURL
            type: object
            properties:
              documentName:
                maxLength: 150
                type: string
              documentType:
                maxLength: 100
                type: string
              uploadedDateTime:
                type: string
                format: date-time
              documentURL:
                maxLength: 500
                type: string
                description: URL of the document to be downloaded
              documentSize:
                type: number
                description: This indicates the file size of the document in bytes
              updatedBy:
                type: string
    UpdateContribution:
      type: object
      required:
        - caseStatus
        - contributionPlans
        - person
      properties:
        caseStatus:
          maxLength: 100
          type: string
          description: This is to track the the status of the Contributions case
        additionalInformation:
          type: string
          description: >-
            This is to track the spatial layers intersecting with site address.
            Example values are - 1.Note: The site, or part of the site, is
            located within a  rural zone.; 2. The site, or part of the site, is
            located within a Special Infrastructure Contributions Area. Consult
            the Department of Planning and Environment to determine how this
            affects State infrastructure contributions. Please go to this link
            for an estimation under existing Special Infrastructure
            Contributions frameworks.; 3.Note: The site, or part of the site, is
            located within the lease area as identified in the SEPP (Three
            Ports) 2013 Lease Area Map.
        contributionPlans:
          type: array
          description: >-
            This is to track the plan details applied for contributions
            calculation. Please refer to the reference data API for the latest
            values.
          items:
            required:
              - planId
              - planName
              - planStatus
            type: object
            properties:
              planId:
                maxLength: 32
                type: string
                description: >-
                  This is to track the unique plan identifier applicable in the
                  Contributions case
              planName:
                maxLength: 250
                type: string
                description: >-
                  This is to track the name of the contributions plan that was
                  applicable in Contributions case
              planStatus:
                maxLength: 32
                type: string
                description: >-
                  This is to track the status of the plan that was applicable in
                  the Contributions case
        previousContributionInformation:
          type: array
          description: >-
            This is to track the previous arrangements which may impact
            contributions for new development.
          items:
            type: string
          example:
            - 1.Previous payment made for state contributions
            - 2.State planning agreement applies to the development.
        proposedDevelopment:
          type: array
          description: >-
            This is to track the proposed development details that were
            submitted in the application. Please refer to the reference data API
            for the latest values.
          items:
            type: object
            properties:
              developmentCategory:
                maxLength: 256
                type: string
                description: >-
                  This is to track the category of a development. Please refer
                  to the reference data API for the latest values. Example
                  values are - 1.Agriculture 2.Commercial Development 3.Existing
                  residential lots 4.Industrial development 5.Infrastructure
                  6.Manufactured home estate 7.Residential Accommodation
                  8.Subdivision 9.Supporting development.
              developmentTypes:
                type: array
                description: >-
                  This is to track the list of all developments applied for
                  under a given category.
                items:
                  required:
                    - developmentType
                  type: object
                  properties:
                    developmentType:
                      maxLength: 256
                      type: string
                      description: >-
                        This is to track the development type provided by the
                        applicant based on corresponding category name. Please
                        refer to the reference data list for the latest values.
        stages:
          type: array
          description: >-
            This is to track the number of stages proposed by the applicant
            during application submission. The object repeats as many times as
            the number of stages. Note- multiple stages are not applicable under
            a Complying Develoment Certificate parent application.
          items:
            type: object
            properties:
              proposedDevelopmentUses:
                type: array
                description: >-
                  This is to track the chargeable proposed developments
                  identified against the plans for the site address. Please
                  refer to reference data API with attribute name =
                  'applicableDevelopment' for the latest values.
                items:
                  required:
                    - planId
                  type: object
                  properties:
                    planId:
                      maxLength: 32
                      type: string
                      description: >-
                        This is to track the plan ID that charges for the
                        developments proposed in the contribution application.
                    developmentType:
                      maxLength: 256
                      type: string
                      description: >-
                        This is to track the chargeable development found in the
                        plan for corresponding planId.
                    unitOfCharge:
                      maxLength: 64
                      type: string
                      description: >-
                        This is to track the unit of charge for corresponding
                        chargeable developmentType.
                    indexedRate:
                      maxLength: 32
                      type: number
                      description: >-
                        This is to track the indexed rate of a development
                        during calculation. This is auto-calculated.
                    calculatedAmount:
                      maxLength: 32
                      type: number
                      description: >-
                        This is to track the calculated amount for proposed
                        development. This is auto-calculated.
                    currentIndexationPeriod:
                      maxLength: 32
                      type: string
                      description: >-
                        This is to track the current indexation period
                        applicable during calculation. This is auto-calculated.
                    currentIndexationValue:
                      maxLength: 32
                      type: number
                      description: >-
                        This is to track the current indexation value applicable
                        during calculation. This is auto-calculated.
                    baseIndexationValue:
                      maxLength: 32
                      type: number
                      description: >-
                        This is to track the base indexation value applicable
                        during calculation. This is auto-calculated.
                    totalUnits:
                      maxLength: 18
                      type: number
                      description: >-
                        This is to track the total number of units for
                        corresponding chargeable developmentType being submitted
                        in the application.
              isExistingDevelopment:
                type: boolean
                description: >-
                  This is to track if applcation has any existing development
                  for the site address.
              existingDevelopment:
                type: array
                description: >-
                  This is to track any existing developments for which applicant
                  can get a credit during contribution calculation. Please refer
                  to the reference data API for the latest values .
                items:
                  type: object
                  properties:
                    developmentCategory:
                      maxLength: 256
                      type: string
                      description: >-
                        This is to track the category of a development. Please
                        refer to the reference data API for the latest values.
                        Example values are - 1.Agriculture 2.Commercial
                        Development 3.Existing residential lots 4.Industrial
                        development 5.Infrastructure 6.Manufactured home estate
                        7.Residential Accommodation 8.Subdivision 9.Supporting
                        development.
                    developmentTypes:
                      type: array
                      items:
                        required:
                          - developmentType
                        type: object
                        properties:
                          developmentType:
                            maxLength: 256
                            type: string
                            description: >-
                              This is to track the development type provided in
                              the application based on corresponding category
                              name. Please refer to the reference data API for
                              the latest values.
              existingDevelopmentUses:
                type: array
                description: >-
                  This is to track the existing developments for which applicant
                  can get a credit during contribution calculation. Please refer
                  to reference data API with attribute name = 
                  'applicableDevelopment' for the latest values.
                items:
                  type: object
                  properties:
                    planId:
                      maxLength: 32
                      type: string
                      description: >-
                        This is to track the plan ID that charges for the
                        developments in the contribution application.
                    developmentType:
                      maxLength: 256
                      type: string
                      description: >-
                        This is to track the chargeable development found in the
                        plan for corresponding planId.
                    unitOfCharge:
                      maxLength: 64
                      type: string
                      description: >-
                        This is to track the unit of charge for corresponding
                        chargeable developmentType.
                    indexedRate:
                      maxLength: 32
                      type: number
                      description: >-
                        This is to track the indexed rate of a development
                        during calculation. This is auto-calculated.
                    calculatedAmount:
                      maxLength: 32
                      type: number
                      description: >-
                        This is to track the calculated amount for existing
                        development. This is auto-calculated.
                    currentIndexationPeriod:
                      maxLength: 32
                      type: string
                      description: >-
                        This is to track the current indexation period
                        applicable during calculation. This is auto-calculated.
                    currentIndexationValue:
                      maxLength: 32
                      type: number
                      description: >-
                        This is to track the current indexation value applicable
                        during calculation. This is auto-calculated.
                    baseIndexationValue:
                      maxLength: 32
                      type: number
                      description: >-
                        This is to track the base indexation value applicable
                        during calculation. This is auto-calculated.
                    totalUnits:
                      maxLength: 18
                      type: number
                      description: >-
                        This is to track the total number of units for
                        corresponding chargeable developmentType being submitted
                        in the application.
              calculationSummary:
                type: array
                description: >-
                  This is to track the summary of total calculated amount for
                  this application
                items:
                  type: object
                  properties:
                    planName:
                      maxLength: 250
                      type: string
                      description: >-
                        This is to track the contributions plan name being used
                        for calculation.
                    planId:
                      maxLength: 32
                      type: string
                      description: >-
                        This is to track the ID of a contributions plan being
                        used for calculation
                    timingOfPayment:
                      maxLength: 256
                      type: string
                      description: >-
                        This is to track the certificate name which will be be
                        issued to applicant only after the contributions payment
                        against the corresponding plan is completed.
                    assessedAmount:
                      maxLength: 18
                      type: number
                      description: >-
                        This is to track the amount provided by consent
                        authority to adjust the system calculated amount. This
                        is auto-calculated.
                    contributionsAmount:
                      maxLength: 18
                      type: number
                      description: >-
                        This is the final contributions amount applicable for
                        this application. When assessedAmount is provided this
                        is equal to assessedAmount else this is equal to
                        systemCalculatedAmount. This is auto-calculated.
                    assessedAmountReason:
                      maxLength: 256
                      type: string
                      description: >-
                        This is to track the reason a consent authority chooses
                        to adjust the system calculated amount. This is
                        applicable and required when stepName =
                        'CalculateContribution' and assessedAmount is greater
                        than or equal to $0.00.Please refer to the reference
                        data API for the latest values. Example values are
                        1.Exemption , 2.Planning Agreement , 3.Land dedication ,
                        4.Previous provision of material public benefit ,
                        5.Discount applied , 6.Other.
                    systemCalculatedAmount:
                      maxLength: 18
                      type: number
                      description: >-
                        This is to track the contributions amount calculated
                        automatically within ePlanning system based on defined
                        business rules. This is auto-calculated.
              assessedAmountReasonDescription:
                maxLength: 2000
                type: string
                description: >-
                  This is to track the detailed reason the consent authority
                  chose to adjust the system calculated amount.
        documents:
          type: array
          description: >-
            This is to track the list of documents provided during Contributions
            case creation.
          required:
            - documentName
            - documentType
            - uploadedDateTime
            - documentURL
          items:
            type: object
            properties:
              documentName:
                maxLength: 150
                type: string
              documentType:
                maxLength: 100
                type: string
              uploadedDateTime:
                type: string
                format: date-time
              documentSize:
                type: number
                description: This indicates the file size of the document in bytes
              updatedBy:
                maxLength: 150
                type: string
              documentURL:
                maxLength: 500
                type: string
                description: URL of the document to be downloaded
        updatedBy:
          type: object
          properties:
            firstName:
              maxLength: 20
              type: string
              example: John
              minLength: 1
            familyName:
              maxLength: 20
              type: string
              example: Smith
              minLength: 1
            email:
              maxLength: 250
              type: string
              description: User must be registered in the planning portal
              example: john.smith@gmail.com
              minLength: 1
            contactNumber:
              maxLength: 10
              minLength: 8
              pattern: ^[0-9]+$
              type: string
  securitySchemes:
    api_key:
      type: apiKey
      name: api-key
      in: header
